#pragma once

#include "IGameState.h"

// SGD Wrappers
#include "SGD Wrappers/CSGD_Direct3D.h"
#include "SGD Wrappers/CSGD_DirectInput.h"
#include "SGD Wrappers/CSGD_TextureManager.h"
#include "SGD Wrappers/CSGD_XAudio2.h"

// Bitmap font
#include "BitmapFont.h"

//enum MenuCursorPosition {SFX = 150, MUSIC = 230, FULL = 310, LANGAUGE = 390, BACK = 470, OPTIONSincrement = 80};
enum MenuCursorPosition {SFX = 133, MUSIC = 213, FULL = 293, LANGAUGE = 373, BACK = 476, OPTIONSincrement = 80};


class OptionsState : public IGameState 
{
public:
	static OptionsState* GetInstance();

	void Enter();

	void Exit();

	bool Input();

	void Update(float elapsed);

	void Render();

	bool GetExit() const	{return exitState;}
	void SetExit(bool e)	{exitState = e;}

	void SetFromMain(bool f)	{fromMain = f;}

	void SaveOptions(const char* szFileName);

	TCHAR optionStr[10];
	TCHAR soundStr[10];
	TCHAR musicStr[10];
	TCHAR fullStr[15];
	TCHAR languageStr[10];
	TCHAR backStr[10];


private:
	OptionsState();

	OptionsState(OptionsState& menu);

	virtual ~OptionsState();

	int cursorX;
	int cursorY;
	float seanTimer;

	int musicSliderX;
	int SFXSliderX;

	// Bitmap font
	CBitmapFont* GroupFont;

	// Images
	int	FontImageID;
	int optionsScreenID;
	int altOptionsID;
	int menuStuffID;
	int box1;
	int box2;

	// Options
	int musicVolume;
	int sfxVolume;

	// Exit variable
	bool exitState;
	bool fromMain;

};
